package main

import "fmt"

/**
定义一个 Shape 接口，包含 Area() 和 Perimeter() 两个方法。然后创建 Rectangle 和 Circle 结构体，
实现 Shape 接口。在主函数中，创建这两个结构体的实例，并调用它们的 Area() 和 Perimeter() 方法。
*/

type shape interface {
	Area() float64
	Perimeter() float64
}

type Rectangle struct {
	name string
}

func (shape Rectangle) Area() float64 {
	fmt.Println(shape.name, "计算面积")
	return 0.0
}

func (shape Rectangle) Perimeter() float64 {
	fmt.Println(shape.name, "计算周长")
	return 0.0
}

type Circle struct {
	name string
}

func (shape Circle) Area() float64 {
	fmt.Println(shape.name, "计算面积")
	return 0.0
}

func (shape Circle) Perimeter() float64 {
	fmt.Println(shape.name, "计算周长")
	return 0.0
}

func main() {
	fmt.Println("hello world")
	var s shape
	rectangle := Rectangle{"长方形"}
	circle := Circle{"圆形形"}

	s = rectangle
	s.Area()
	s.Perimeter()

	s = circle
	s.Area()
	s.Perimeter()
}
